package cn.tedu.baking.controller;

import cn.tedu.baking.common.response.JsonResult;
import cn.tedu.baking.pojo.dto.UserChangeDTO;
import cn.tedu.baking.pojo.dto.UserLoginDTO;
import cn.tedu.baking.pojo.dto.UserRegDTO;
import cn.tedu.baking.pojo.dto.UserUpdateDTO;
import cn.tedu.baking.pojo.vo.UserAdminVO;
import cn.tedu.baking.pojo.vo.UserVO;
import cn.tedu.baking.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/v1/users")
public class UserController {
    @Autowired
    IUserService service;
    @PostMapping("reg")
    public JsonResult reg(UserRegDTO userRegDTO){
        service.reg(userRegDTO);
        return JsonResult.ok();
    }

    @PostMapping("login")
    public JsonResult login(UserLoginDTO userLoginDTO){

        UserVO userVO = service.login(userLoginDTO);
        return JsonResult.ok(userVO);
    }

    @PostMapping("update")
    public JsonResult update(UserUpdateDTO userUpdateDTO){
        service.update(userUpdateDTO);
        return JsonResult.ok();
    }

    @GetMapping("")
    public JsonResult list(){
        List<UserAdminVO> list = service.list();
        return JsonResult.ok(list);
    }
    @PostMapping("{id}/delete")
    public JsonResult deleteById(@PathVariable Long id){
        service.deleteById(id);
        return JsonResult.ok();
    }
    @PostMapping("change")
    public JsonResult changeAdmin(UserChangeDTO userChangeDTO){
        service.changeAdmin(userChangeDTO);
        return JsonResult.ok();
    }

}
